[INFO] cloning repository https://github.com/async0-prod/async0-ws
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/async0-prod/async0-ws" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fasync0-prod%2Fasync0-ws", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fasync0-prod%2Fasync0-ws'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 229b478da58f6a3f2ba13593990b3a8a9fd785a0
[INFO] fixing async0-prod/async0-ws against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fasync0-prod%2Fasync0-ws" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/async0-prod/async0-ws
[INFO] finished tweaking git repo https://github.com/async0-prod/async0-ws
[INFO] tweaked toml for git repo https://github.com/async0-prod/async0-ws written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/async0-prod/async0-ws on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/async0-prod/async0-ws already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bitflags v2.9.2
[INFO] [stderr]   Downloaded axum-extra v0.10.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f783d0f1358f07a0213dc0d97fff16f197f66f0c6399ab4c55375217325ef214
[INFO] running `Command { std: "docker" "start" "f783d0f1358f07a0213dc0d97fff16f197f66f0c6399ab4c55375217325ef214", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f783d0f1358f07a0213dc0d97fff16f197f66f0c6399ab4c55375217325ef214" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f783d0f1358f07a0213dc0d97fff16f197f66f0c6399ab4c55375217325ef214", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f783d0f1358f07a0213dc0d97fff16f197f66f0c6399ab4c55375217325ef214" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]     Checking headers-core v0.3.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking axum-core v0.5.2
[INFO] [stderr]     Checking headers v0.4.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking uuid v1.18.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking tungstenite v0.26.2
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking hyper v1.7.0
[INFO] [stderr]     Checking tokio-tungstenite v0.26.2
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking hyper-util v0.1.16
[INFO] [stderr]     Checking serde_path_to_error v0.1.17
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking axum v0.8.4
[INFO] [stderr]     Checking axum-extra v0.10.1
[INFO] [stderr]     Checking ws v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0583]: file not found for module `config`
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod config;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `config`, create file "src/config.rs" or "src/config/mod.rs"
[INFO] [stdout]   = note: if there is a `mod config` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `middlewares`
[INFO] [stdout]  --> src/main.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod middlewares;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `middlewares`, create file "src/middlewares.rs" or "src/middlewares/mod.rs"
[INFO] [stdout]   = note: if there is a `mod middlewares` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `config`
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod config;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `config`, create file "src/config.rs" or "src/config/mod.rs"
[INFO] [stdout]   = note: if there is a `mod config` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `middlewares`
[INFO] [stdout]  --> src/main.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod middlewares;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `middlewares`, create file "src/middlewares.rs" or "src/middlewares/mod.rs"
[INFO] [stdout]   = note: if there is a `mod middlewares` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `thiserror`
[INFO] [stdout]  --> src/state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use thiserror::Error;
[INFO] [stdout]   |     ^^^^^^^^^ use of unresolved module or unlinked crate `thiserror`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `thiserror`, use `cargo add thiserror` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `axum_test`
[INFO] [stdout]  --> src/test.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use axum_test::TestServer;
[INFO] [stdout]   |         ^^^^^^^^^ use of unresolved module or unlinked crate `axum_test`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `axum_test`, use `cargo add axum_test` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `anyhow`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use anyhow::{Context, Result};
[INFO] [stdout]    |     ^^^^^^ use of unresolved module or unlinked crate `anyhow`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `anyhow`, use `cargo add anyhow` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `thiserror`
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use thiserror::Error;
[INFO] [stdout]    |     ^^^^^^^^^ use of unresolved module or unlinked crate `thiserror`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `thiserror`, use `cargo add thiserror` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]  --> src/state.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 |     #[error("Publisher '{id}' already exists")]
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]   |
[INFO] [stdout] 8 + #[derive(Error)]
[INFO] [stdout] 9 | pub enum AppStateError {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |     #[error("Publisher '{id}' not found")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 |     #[error("Subscriber '{id}' already exists")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 |     #[error("Subscriber '{id}' not found")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 |     #[error("Subscriber '{id}' is not subscribed to publisher '{publisher_id}'")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 |     #[error("Failed to send message to publisher '{id}': {reason}")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 |     #[error("Failed to acquire lock")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 |     #[error("Maximum subscribers ({max}) reached for publisher '{publisher_id}'")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:107:7
[INFO] [stdout]     |
[INFO] [stdout] 107 |     #[error("JSON parsing error: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `from` in this scope
[INFO] [stdout]    --> src/main.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |     JsonParse(#[from] serde_json::Error),
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `from` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:110:7
[INFO] [stdout]     |
[INFO] [stdout] 110 |     #[error("WebSocket error: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `from` in this scope
[INFO] [stdout]    --> src/main.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |     WebSocket(#[from] axum::Error),
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `from` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:113:7
[INFO] [stdout]     |
[INFO] [stdout] 113 |     #[error("Application state error: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `from` in this scope
[INFO] [stdout]    --> src/main.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |     AppState(#[from] AppStateError),
[INFO] [stdout]     |                ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `from` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:116:7
[INFO] [stdout]     |
[INFO] [stdout] 116 |     #[error("Invalid message: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:119:7
[INFO] [stdout]     |
[INFO] [stdout] 119 |     #[error("Unauthorized action: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `signal` in `tokio`
[INFO] [stdout]    --> src/main.rs:174:16
[INFO] [stdout]     |
[INFO] [stdout] 174 |         tokio::signal::ctrl_c()
[INFO] [stdout]     |                ^^^^^^ could not find `signal` in `tokio`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:532:13
[INFO] [stdout]     |
[INFO] [stdout] 532 |     pub mod signal;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:408:19
[INFO] [stdout]     |
[INFO] [stdout] 408 |             #[cfg(feature = "signal")]
[INFO] [stdout]     |                   ------------------ the item is gated behind the `signal` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:539:20
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub(crate) mod signal;
[INFO] [stdout]     |                    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:420:22
[INFO] [stdout]     |
[INFO] [stdout] 420 |             #[cfg(any(feature = "signal", all(unix, feature = "process")))]
[INFO] [stdout]     |                      ---------------------------------------------------- the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `signal` in `tokio`
[INFO] [stdout]    --> src/main.rs:181:16
[INFO] [stdout]     |
[INFO] [stdout] 181 |         tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())
[INFO] [stdout]     |                ^^^^^^ could not find `signal` in `tokio`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:532:13
[INFO] [stdout]     |
[INFO] [stdout] 532 |     pub mod signal;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:408:19
[INFO] [stdout]     |
[INFO] [stdout] 408 |             #[cfg(feature = "signal")]
[INFO] [stdout]     |                   ------------------ the item is gated behind the `signal` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:539:20
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub(crate) mod signal;
[INFO] [stdout]     |                    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:420:22
[INFO] [stdout]     |
[INFO] [stdout] 420 |             #[cfg(any(feature = "signal", all(unix, feature = "process")))]
[INFO] [stdout]     |                      ---------------------------------------------------- the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `thiserror`
[INFO] [stdout]  --> src/state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use thiserror::Error;
[INFO] [stdout]   |     ^^^^^^^^^ use of unresolved module or unlinked crate `thiserror`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `thiserror`, use `cargo add thiserror` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `anyhow`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use anyhow::{Context, Result};
[INFO] [stdout]    |     ^^^^^^ use of unresolved module or unlinked crate `anyhow`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `anyhow`, use `cargo add anyhow` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `thiserror`
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use thiserror::Error;
[INFO] [stdout]    |     ^^^^^^^^^ use of unresolved module or unlinked crate `thiserror`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `thiserror`, use `cargo add thiserror` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `signal` in `tokio`
[INFO] [stdout]    --> src/main.rs:181:44
[INFO] [stdout]     |
[INFO] [stdout] 181 |         tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())
[INFO] [stdout]     |                                            ^^^^^^ could not find `signal` in `tokio`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:532:13
[INFO] [stdout]     |
[INFO] [stdout] 532 |     pub mod signal;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:408:19
[INFO] [stdout]     |
[INFO] [stdout] 408 |             #[cfg(feature = "signal")]
[INFO] [stdout]     |                   ------------------ the item is gated behind the `signal` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:539:20
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub(crate) mod signal;
[INFO] [stdout]     |                    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:420:22
[INFO] [stdout]     |
[INFO] [stdout] 420 |             #[cfg(any(feature = "signal", all(unix, feature = "process")))]
[INFO] [stdout]     |                      ---------------------------------------------------- the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]  --> src/state.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 |     #[error("Publisher '{id}' already exists")]
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]   |
[INFO] [stdout] 8 + #[derive(Error)]
[INFO] [stdout] 9 | pub enum AppStateError {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |     #[error("Publisher '{id}' not found")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 |     #[error("Subscriber '{id}' already exists")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 |     #[error("Subscriber '{id}' not found")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 |     #[error("Subscriber '{id}' is not subscribed to publisher '{publisher_id}'")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 |     #[error("Failed to send message to publisher '{id}': {reason}")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 |     #[error("Failed to acquire lock")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]   --> src/state.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 |     #[error("Maximum subscribers ({max}) reached for publisher '{publisher_id}'")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout]  8 + #[derive(Error)]
[INFO] [stdout]  9 | pub enum AppStateError {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:107:7
[INFO] [stdout]     |
[INFO] [stdout] 107 |     #[error("JSON parsing error: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `from` in this scope
[INFO] [stdout]    --> src/main.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |     JsonParse(#[from] serde_json::Error),
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `from` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:110:7
[INFO] [stdout]     |
[INFO] [stdout] 110 |     #[error("WebSocket error: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `from` in this scope
[INFO] [stdout]    --> src/main.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |     WebSocket(#[from] axum::Error),
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `from` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:113:7
[INFO] [stdout]     |
[INFO] [stdout] 113 |     #[error("Application state error: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `from` in this scope
[INFO] [stdout]    --> src/main.rs:114:16
[INFO] [stdout]     |
[INFO] [stdout] 114 |     AppState(#[from] AppStateError),
[INFO] [stdout]     |                ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `from` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:116:7
[INFO] [stdout]     |
[INFO] [stdout] 116 |     #[error("Invalid message: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `error` in this scope
[INFO] [stdout]    --> src/main.rs:119:7
[INFO] [stdout]     |
[INFO] [stdout] 119 |     #[error("Unauthorized action: {0}")]
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `error` is an attribute that can be used by the derive macro `Error`, you might be missing a `derive` attribute
[INFO] [stdout]     |
[INFO] [stdout] 106 + #[derive(Error)]
[INFO] [stdout] 107 | enum WebSocketError {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `signal` in `tokio`
[INFO] [stdout]    --> src/main.rs:174:16
[INFO] [stdout]     |
[INFO] [stdout] 174 |         tokio::signal::ctrl_c()
[INFO] [stdout]     |                ^^^^^^ could not find `signal` in `tokio`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:532:13
[INFO] [stdout]     |
[INFO] [stdout] 532 |     pub mod signal;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:408:19
[INFO] [stdout]     |
[INFO] [stdout] 408 |             #[cfg(feature = "signal")]
[INFO] [stdout]     |                   ------------------ the item is gated behind the `signal` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:539:20
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub(crate) mod signal;
[INFO] [stdout]     |                    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:420:22
[INFO] [stdout]     |
[INFO] [stdout] 420 |             #[cfg(any(feature = "signal", all(unix, feature = "process")))]
[INFO] [stdout]     |                      ---------------------------------------------------- the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `signal` in `tokio`
[INFO] [stdout]    --> src/main.rs:181:16
[INFO] [stdout]     |
[INFO] [stdout] 181 |         tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())
[INFO] [stdout]     |                ^^^^^^ could not find `signal` in `tokio`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:532:13
[INFO] [stdout]     |
[INFO] [stdout] 532 |     pub mod signal;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:408:19
[INFO] [stdout]     |
[INFO] [stdout] 408 |             #[cfg(feature = "signal")]
[INFO] [stdout]     |                   ------------------ the item is gated behind the `signal` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:539:20
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub(crate) mod signal;
[INFO] [stdout]     |                    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:420:22
[INFO] [stdout]     |
[INFO] [stdout] 420 |             #[cfg(any(feature = "signal", all(unix, feature = "process")))]
[INFO] [stdout]     |                      ---------------------------------------------------- the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `signal` in `tokio`
[INFO] [stdout]    --> src/main.rs:181:44
[INFO] [stdout]     |
[INFO] [stdout] 181 |         tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())
[INFO] [stdout]     |                                            ^^^^^^ could not find `signal` in `tokio`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:532:13
[INFO] [stdout]     |
[INFO] [stdout] 532 |     pub mod signal;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:408:19
[INFO] [stdout]     |
[INFO] [stdout] 408 |             #[cfg(feature = "signal")]
[INFO] [stdout]     |                   ------------------ the item is gated behind the `signal` feature
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs:539:20
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub(crate) mod signal;
[INFO] [stdout]     |                    ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs:420:22
[INFO] [stdout]     |
[INFO] [stdout] 420 |             #[cfg(any(feature = "signal", all(unix, feature = "process")))]
[INFO] [stdout]     |                      ---------------------------------------------------- the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `context` found for enum `Result<T, E>` in the current scope
[INFO] [stdout]    --> src/main.rs:262:44
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 serde_json::from_str(text).context("Failed to parse user message")?;
[INFO] [stdout]     |                                            ^^^^^^^ method not found in `Result<_, serde_json::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `context` found for enum `Result<T, E>` in the current scope
[INFO] [stdout]    --> src/main.rs:474:42
[INFO] [stdout]     |
[INFO] [stdout] 474 |             serde_json::to_string(&data).context("Failed to serialize message for subscriber")?;
[INFO] [stdout]     |                                          ^^^^^^^ method not found in `Result<std::string::String, serde_json::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `AppStateError` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/main.rs:485:70
[INFO] [stdout]     |
[INFO] [stdout] 485 |         eprintln!("Error removing subscriber {}: {}", subscriber_id, e);
[INFO] [stdout]     |                                                  --                  ^ `AppStateError` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `AppStateError`
[INFO] [stdout]    --> src/state.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub enum AppStateError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `list_publishers` found for reference `&Arc<AppState>` in the current scope
[INFO] [stdout]    --> src/main.rs:554:28
[INFO] [stdout]     |
[INFO] [stdout] 554 |     let publishers = state.list_publishers()?;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_publisher` with a similar name, but with different arguments
[INFO] [stdout]    --> src/state.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn get_publisher(&self, id: Uuid) -> Result<broadcast::Sender<Value>, AppStateError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `AppStateError` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/main.rs:594:82
[INFO] [stdout]     |
[INFO] [stdout] 594 |                     eprintln!("Error removing publisher {}: {}", client_info.id, e);
[INFO] [stdout]     |                                                             --                   ^ `AppStateError` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `AppStateError`
[INFO] [stdout]    --> src/state.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub enum AppStateError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `AppStateError` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/main.rs:601:83
[INFO] [stdout]     |
[INFO] [stdout] 601 |                     eprintln!("Error removing subscriber {}: {}", client_info.id, e);
[INFO] [stdout]     |                                                              --                   ^ `AppStateError` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `AppStateError`
[INFO] [stdout]    --> src/state.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub enum AppStateError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `context` found for enum `Result<T, E>` in the current scope
[INFO] [stdout]    --> src/main.rs:262:44
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 serde_json::from_str(text).context("Failed to parse user message")?;
[INFO] [stdout]     |                                            ^^^^^^^ method not found in `Result<_, serde_json::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:38:18
[INFO] [stdout]      |
[INFO] [stdout]   38 |         user_id: Uuid,
[INFO] [stdout]      |                  ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:38:18
[INFO] [stdout]      |
[INFO] [stdout]   38 |         user_id: Uuid,
[INFO] [stdout]      |                  ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]   --> src/main.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 ^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]    |
[INFO] [stdout]    = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]    = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]    = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]              &'a RawValue
[INFO] [stdout]              &'a [u8]
[INFO] [stdout]              &'a std::path::Path
[INFO] [stdout]              &'a str
[INFO] [stdout]              ()
[INFO] [stdout]              (T,)
[INFO] [stdout]              (T0, T1)
[INFO] [stdout]              (T0, T1, T2)
[INFO] [stdout]            and 151 others
[INFO] [stdout] note: required by a bound in `_::_serde::__private::de::missing_field`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/private/de.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn missing_field<'de, V, E>(field: &'static str) -> Result<V, E>
[INFO] [stdout]    |        ------------- required by a bound in this function
[INFO] [stdout] 24 | where
[INFO] [stdout] 25 |     V: Deserialize<'de>,
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ required by this bound in `missing_field`
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:41:18
[INFO] [stdout]      |
[INFO] [stdout]   41 |         user_id: Uuid,
[INFO] [stdout]      |                  ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `context` found for enum `Result<T, E>` in the current scope
[INFO] [stdout]    --> src/main.rs:474:42
[INFO] [stdout]     |
[INFO] [stdout] 474 |             serde_json::to_string(&data).context("Failed to serialize message for subscriber")?;
[INFO] [stdout]     |                                          ^^^^^^^ method not found in `Result<std::string::String, serde_json::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `AppStateError` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/main.rs:485:70
[INFO] [stdout]     |
[INFO] [stdout] 485 |         eprintln!("Error removing subscriber {}: {}", subscriber_id, e);
[INFO] [stdout]     |                                                  --                  ^ `AppStateError` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `AppStateError`
[INFO] [stdout]    --> src/state.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub enum AppStateError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:41:18
[INFO] [stdout]      |
[INFO] [stdout]   41 |         user_id: Uuid,
[INFO] [stdout]      |                  ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:44:23
[INFO] [stdout]      |
[INFO] [stdout]   44 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:44:23
[INFO] [stdout]      |
[INFO] [stdout]   44 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `list_publishers` found for reference `&Arc<AppState>` in the current scope
[INFO] [stdout]    --> src/main.rs:554:28
[INFO] [stdout]     |
[INFO] [stdout] 554 |     let publishers = state.list_publishers()?;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_publisher` with a similar name, but with different arguments
[INFO] [stdout]    --> src/state.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn get_publisher(&self, id: Uuid) -> Result<broadcast::Sender<Value>, AppStateError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `AppStateError` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/main.rs:594:82
[INFO] [stdout]     |
[INFO] [stdout] 594 |                     eprintln!("Error removing publisher {}: {}", client_info.id, e);
[INFO] [stdout]     |                                                             --                   ^ `AppStateError` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `AppStateError`
[INFO] [stdout]    --> src/state.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub enum AppStateError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `AppStateError` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/main.rs:601:83
[INFO] [stdout]     |
[INFO] [stdout] 601 |                     eprintln!("Error removing subscriber {}: {}", client_info.id, e);
[INFO] [stdout]     |                                                              --                   ^ `AppStateError` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `AppStateError`
[INFO] [stdout]    --> src/state.rs:8:1
[INFO] [stdout]     |
[INFO] [stdout]   8 | pub enum AppStateError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:48:24
[INFO] [stdout]      |
[INFO] [stdout]   48 |         subscriber_id: Uuid,
[INFO] [stdout]      |                        ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:49:23
[INFO] [stdout]      |
[INFO] [stdout]   49 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:48:24
[INFO] [stdout]      |
[INFO] [stdout]   48 |         subscriber_id: Uuid,
[INFO] [stdout]      |                        ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:49:23
[INFO] [stdout]      |
[INFO] [stdout]   49 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:52:24
[INFO] [stdout]      |
[INFO] [stdout]   52 |         subscriber_id: Uuid,
[INFO] [stdout]      |                        ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:53:23
[INFO] [stdout]      |
[INFO] [stdout]   53 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:52:24
[INFO] [stdout]      |
[INFO] [stdout]   52 |         subscriber_id: Uuid,
[INFO] [stdout]      |                        ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:53:23
[INFO] [stdout]      |
[INFO] [stdout]   53 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:38:18
[INFO] [stdout]      |
[INFO] [stdout]   38 |         user_id: Uuid,
[INFO] [stdout]      |                  ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:38:18
[INFO] [stdout]      |
[INFO] [stdout]   38 |         user_id: Uuid,
[INFO] [stdout]      |                  ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Serialize` is not satisfied
[INFO] [stdout]     --> src/main.rs:72:17
[INFO] [stdout]      |
[INFO] [stdout]   72 | #[derive(Debug, Serialize)]
[INFO] [stdout]      |                 ^^^^^^^^^ the trait `Serialize` is not implemented for `Uuid`
[INFO] [stdout]   73 | pub struct PublisherStats {
[INFO] [stdout]   74 |     pub id: Uuid,
[INFO] [stdout]      |     ------------ required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Serialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Serialize`:
[INFO] [stdout]                &'a T
[INFO] [stdout]                &'a mut T
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]                (T0, T1, T2, T3, T4)
[INFO] [stdout]              and 135 others
[INFO] [stdout] note: required by a bound in `_::_serde::ser::SerializeStruct::serialize_field`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/ser/mod.rs:1866:21
[INFO] [stdout]      |
[INFO] [stdout] 1864 |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
[INFO] [stdout]      |        --------------- required by a bound in this associated function
[INFO] [stdout] 1865 |     where
[INFO] [stdout] 1866 |         T: ?Sized + Serialize;
[INFO] [stdout]      |                     ^^^^^^^^^ required by this bound in `SerializeStruct::serialize_field`
[INFO] [stdout]      = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]   --> src/main.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 ^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]    |
[INFO] [stdout]    = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]    = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]    = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]              &'a RawValue
[INFO] [stdout]              &'a [u8]
[INFO] [stdout]              &'a std::path::Path
[INFO] [stdout]              &'a str
[INFO] [stdout]              ()
[INFO] [stdout]              (T,)
[INFO] [stdout]              (T0, T1)
[INFO] [stdout]              (T0, T1, T2)
[INFO] [stdout]            and 151 others
[INFO] [stdout] note: required by a bound in `_::_serde::__private::de::missing_field`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/private/de.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn missing_field<'de, V, E>(field: &'static str) -> Result<V, E>
[INFO] [stdout]    |        ------------- required by a bound in this function
[INFO] [stdout] 24 | where
[INFO] [stdout] 25 |     V: Deserialize<'de>,
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ required by this bound in `missing_field`
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:41:18
[INFO] [stdout]      |
[INFO] [stdout]   41 |         user_id: Uuid,
[INFO] [stdout]      |                  ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:41:18
[INFO] [stdout]      |
[INFO] [stdout]   41 |         user_id: Uuid,
[INFO] [stdout]      |                  ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `context` found for enum `Result<T, E>` in the current scope
[INFO] [stdout]    --> src/main.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 139 |       let listener = tokio::net::TcpListener::bind(ADDR)
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 140 | |         .await
[INFO] [stdout] 141 | |         .context("Failed to bind to address")?;
[INFO] [stdout]     | |         -^^^^^^^ method not found in `Result<tokio::net::TcpListener, std::io::Error>`
[INFO] [stdout]     | |_________|
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:44:23
[INFO] [stdout]      |
[INFO] [stdout]   44 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:44:23
[INFO] [stdout]      |
[INFO] [stdout]   44 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:48:24
[INFO] [stdout]      |
[INFO] [stdout]   48 |         subscriber_id: Uuid,
[INFO] [stdout]      |                        ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:49:23
[INFO] [stdout]      |
[INFO] [stdout]   49 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:48:24
[INFO] [stdout]      |
[INFO] [stdout]   48 |         subscriber_id: Uuid,
[INFO] [stdout]      |                        ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:49:23
[INFO] [stdout]      |
[INFO] [stdout]   49 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:52:24
[INFO] [stdout]      |
[INFO] [stdout]   52 |         subscriber_id: Uuid,
[INFO] [stdout]      |                        ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:53:23
[INFO] [stdout]      |
[INFO] [stdout]   53 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:52:24
[INFO] [stdout]      |
[INFO] [stdout]   52 |         subscriber_id: Uuid,
[INFO] [stdout]      |                        ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/main.rs:53:23
[INFO] [stdout]      |
[INFO] [stdout]   53 |         publisher_id: Uuid,
[INFO] [stdout]      |                       ^^^^ the trait `Deserialize<'_>` is not implemented for `Uuid`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a RawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 151 others
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Uuid: Serialize` is not satisfied
[INFO] [stdout]     --> src/main.rs:72:17
[INFO] [stdout]      |
[INFO] [stdout]   72 | #[derive(Debug, Serialize)]
[INFO] [stdout]      |                 ^^^^^^^^^ the trait `Serialize` is not implemented for `Uuid`
[INFO] [stdout]   73 | pub struct PublisherStats {
[INFO] [stdout]   74 |     pub id: Uuid,
[INFO] [stdout]      |     ------------ required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Serialize)]` to your `Uuid` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Serialize`:
[INFO] [stdout]                &'a T
[INFO] [stdout]                &'a mut T
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]                (T0, T1, T2, T3, T4)
[INFO] [stdout]              and 135 others
[INFO] [stdout] note: required by a bound in `_::_serde::ser::SerializeStruct::serialize_field`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/ser/mod.rs:1866:21
[INFO] [stdout]      |
[INFO] [stdout] 1864 |     fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
[INFO] [stdout]      |        --------------- required by a bound in this associated function
[INFO] [stdout] 1865 |     where
[INFO] [stdout] 1866 |         T: ?Sized + Serialize;
[INFO] [stdout]      |                     ^^^^^^^^^ required by this bound in `SerializeStruct::serialize_field`
[INFO] [stdout]      = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `context` found for enum `Result<T, E>` in the current scope
[INFO] [stdout]    --> src/main.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 139 |       let listener = tokio::net::TcpListener::bind(ADDR)
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 140 | |         .await
[INFO] [stdout] 141 | |         .context("Failed to bind to address")?;
[INFO] [stdout]     | |         -^^^^^^^ method not found in `Result<tokio::net::TcpListener, std::io::Error>`
[INFO] [stdout]     | |_________|
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0583, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ws` (bin "ws" test) due to 48 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0583, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ws` (bin "ws") due to 47 previous errors
[INFO] running `Command { std: "docker" "inspect" "f783d0f1358f07a0213dc0d97fff16f197f66f0c6399ab4c55375217325ef214", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f783d0f1358f07a0213dc0d97fff16f197f66f0c6399ab4c55375217325ef214", kill_on_drop: false }`
[INFO] [stdout] f783d0f1358f07a0213dc0d97fff16f197f66f0c6399ab4c55375217325ef214
